第 e $ & 0 ee 0 ce X-Y 作図 x-y 作図のルーチンは簡単に使用できる。標準の設定 は、表示を作成するためのよい出発点となる。作図能力 としては以下のものがある。直線軸と対数軸、各点を異 なるシンポル ( ユーサー定義のシンポルを含む ) でマー クする機能、タイプの異なる線で点を結ぶ、ヒストグラ ムと棒グラフ、曲線間の塗りつぶし。評者はとくに軸の 限界の丸めが気に入った ( ちなみに、この機能は制限する こともできる ) 。これは、ほかの作図パッケージにときお りみられる奇妙な軸の制限を回避している。しかし、丸 めすぎる場合もあるので、ときには制限も必要だろう。 タイトルと軸のラベル ( 軸の値も含む ) は引数として も渡せるし、グローバル変数でも設定できる。文字列作 図ルーチンを使って、図にテキストを追加することがで きる。また、すべてのテキスト表示を望みのサイズに変 史できるので、特定のサイズを容易に作ることができる。 テキスト表示とほかの機能のために、座標の単位を選 択できるのはとても便利である。これらの単位は、作図 のデータ単位、ピクセル座標、あるいは正規化された座 標である。単位間の変換をおこなう情報は、グローバル 変数を介して受け渡される。この機能を使えば、図のな かにテキストを位置づけるのが容易になる。 純枠な枷巫標系による作図 (polar plot) はできない。 極座標系の作図は、根軸 (radical axes) と回転軸 (cir- cular axes) の代わりに直交軸 (orthogonal axes) を使 用する。もう 1 つ不満な点は、ポイント・シンポルをテ キスト作図ルーチンで使えないことと説明文を簡単に表 示できないことだ。 2 次元配列の作図 2 次兀の作図関数としては、 contour 、 surface 、 shad- ed-surface 関数がある。複数の光源を異なる角度から あて、シェイディングによって作図した面はとても美し こでも、標準の設定がよい出発点になるだろう。 しかし、すべてのパラメータはルーチンを呼び出すとき に一勺に設定できるし、グローバル変数を使うと永続 的に設定できる。図のすべての側面 ( 面の作図の回転角度 UNIX MAGAZINE 1990.12 や図の曲線のラベリングなど ) はこの去で設定できる。 変史にあたって、図中の面線の数はパラメータに指定 できない。ューサーのデータに含まれている点の数が多 すぎる場合、面線カ鯤ざってしまい、面の作図に役に立 たなくなる。面線の数を設定するためのパラメータがあ れは便利であろう。 画像表示 画像表示ルーチンは、ピクセル画像を表示するために 使用される。これは、整数と浮動小数点数のデータを自 動的に利用可能な表示範囲に転換するものだ。このマッ ピングの尺度を変更して、コントラストを強調するため のルーチンが存在する。これらの機能および異なる画像 里関数の使用法は、画像処理ガイドに説明されている。 このルーチンは、 PV ~ Wave のなかではもっとも信頼 性が低いようだ。何回か、このルーチンのある部分が正 しく動作しなかったことがある。ヒストグラム・ルーチ ンは整数ではうまく動作せす、 convolution ルーチンは バイトサイズのデータの扱いに問題があった。しかし、 仕事の種類によっては、これらのルーチンはユーザーの 必要とするすべての機能を提供している。もう 1 つの画 像表示ルーチン movie は、 PV-Wave とそれが実行さ れているウインドウを完全にクラッシュさせる。 画像処理ルーチンの大きな欠点は、画像のサイズを直 接再設定できないことだ。画像は rebin や congrid のル ーチンによって、個別に尺度の変更がなされなければな らない。ルーチン rebin は、配列を指定された新しい次 元に再設定する。これには、新しい次元の大きさがもと の次元の整数の倍数、または因数でなければならないと いう制限がある。たとえば、この関数を使って 100 の次 元を 150 にすることはできない。もっと柔軟なサイズの 再設定には、ユーザー・ライプラリ関数の congrid を使 う。この関数は、オプションでリサンプリングのために ヾイリニアのインターポレーションをおこなう。これに より満足のいく結果が得られる。 画像処理においては、前述のように他言語で書かれた ルーチンへのよいインターフェイスがないことが大きな 欠点である。画像処理は、ユーザーカ嘯いた手続きを含 む場合が多いからだ。残念ながら、ユーサーは PV- 39
news¬ice 0 ce 機能 PV-Wave は、対話式でもバッチ・モードでも使用で きるデータ表示システムである。ューサーはプログラム、 手続きおよび PV ~ Wave のプログラミング言語の関数 を書くと、標準の機能を拡張できる。これらのプログラ ムは対話式でも、バッチ・ジョブからでも呼び出せる。 この環境には多くの機能があり、データや画像の表示に さまざまな処理を簡単に施せる。 PV-Wave は、ほとん どの科学技術データの分析と表示に必要とする機能をす べて提供している。 PV-Wave の大部分の表示機能は、関数呼出し時の 引数とキーワード、およびグローバルなシステム変数に よって制御される。軸の長さやウインドウ・サイズなど の自動的に調整される変数はグローバル変数に返される ので、以降の関数呼出しに使用できる。これらのグロー バル変数は、作図機能の調整に役立つ。しかし、これを 対話式に設定するのはかなり骨の折れる作業だった。表 示パラメータを調整するためのメニュー式ユーティリテ ィを使えば、これらの調整がもっと容易になる。 配布テープには標準の PV-Wave コマンドのほかに 大量のユーサー・ライプラリが含まれており、このなか にはユーザーによって書かれたルーチンも含まれている。 これらはユーザーによって書かれたものであるだけに PV ~ Wave システムによっては完全にサポートされて いない。しかし、機能セットに対するこの拡張はパッケ ージのユーティリティには重要である。このなかにある 多くの手続きによって、パッケージが使いやすくなる。 このユーザー・ライプラリには、 PV-Wave の正規のコ マンドと同様に自動的にアクセスできる。 プログラミング言語 PV-Wave のプログラミングは Fortran, BASIC 、 PascaI を混在させたようなもので、 C も多少 混ざっている。これは、対話処理にも、手続きとバッチ・ ジョブのプログラミングにも使用される。学習は比中知勺 容易である。 残念なのは、一貫性を考えることなく各言語の構文の 38 特徴をそのまま採り入れた点だ。たとえば、配列のイン デックスは C と同様に 0 から始まるが、多次兀配列にお いては Fortran と同しく最初のインデックスがます変 化するようになっている。関数と手続きは関数の名前に よって呼び出され、その後にカンマと引数リストカく。 これには多少の慣れを必要とするだろう。最初のカンマ を忘れやすいからだ。 この言語は、プログラミングに必要なはとんどの論理 的構成要素と数学関数を提供している。唯一欠けている 論理的構成要素は、簡単に使える ELSE-IF である。単 純な ELSE ー IF を作るために必要な ELSE 、 IF 、 THEN 、 BEGIN 、 ENDIF の入れ子は美しくない。手 続きと関数は最初に呼び出されたときに自動的にコンパ イルされ、メモリに保存される。これはよい機能であ り、タイプの量と管理作業をかなり軽減できる。 この言語のもっとも優れた機能は、配列演算をサポー トしていることだ。すべての数学関数でスカラ変数と配 列変数を扱える。配列変数を使用した場合には、同し演 算が配列本に対しておこなわれる。 この言語の大きな欠点は、ほかの言語から PV-Wave の関数を呼び出すためのサポートがなく、その逆もない ことである。他言語で書かれた手続きにアクセスできる 唯一の手段は、サププロセスを生成して、その標準入出 力を通して通信することである。これは醜い方法だし、 だいいち変数の受け渡しができない。 C および Fortran からの PV-Wave 手続きの呼出 しは、さらに貧弱である。 こでも唯一の手段は、呼出 し文字列をサプルーチンに渡して PV-Wave プログラ ムのプロセスを生成することである。やはり、変数を渡 すことはできない。このため、ユーサーが書いた関数を 必要とする状況では PV-Wave の使用は難しい。とい うのは、これらの関数を完全かっ容易に使用するには、 PV ~ Wave の言語を使って書き直さなければならない からである。 ほかに苛々させられるのは、配列要素をファイルから 読み取れないことだ。配列全体や単純な変数は読み取れ るが、個々の配列要素を読み取れないのだ。このため、 一時変数を使う使わないの判断が必要になる。これは、 ューサーが「いったいぜんたい、なぜこうなっているん だ ? 」と苛立つ一因になる。 UNIX MAGAZINE 1990.12
新 e $ & 0 ce 0 0 ・ の RAM 、 280MB HDD を備えた Sun4 / 110 上でおこ なった。 インストール PV-Wave のインストール・キットはテープとインス トール・マニュアルからなり、インストール手続きは分 かりやすく正確である。指示どおりにすれば、インスト ール作業は支障なく完了する。しかし、些細なことだが 1 つだけ気に入らない点があった。 インストール中に、オプションとしてデモンストレー ション・ファイルをインストールすることができる。だ が、そのために約 12MB のディスク容量が必要なことは 指示するまで分からないのである。このようなことは、 インストールの前に知らせるべきである。とはいっても、 中断する機会はあるので PV-Wave のインストールに 関する面は A である。 ドキュメント PV ~ Wave のドキュメントは、やメイン・マニュアル〃 ヾデモンストレーション・ガイド〃、、画像処理マニュアル〃 、、クイック・リファレンス〃 ( すべての関数と手続きに関 するガイド ) 、、概略〃に分かれている。、、概略〃では、例 を挙げて PV ~ Wave のほとんどの機能を紹介している。 残念ながら評者が受け取った、慨略〃は VAX 用で、 Sun 用のソフトウェアのものではなかった。このため、 いくっかの関数名が Sun のものとは異なっており、パッ ケージの使用時にはいくぶん戸惑った。 メイン・マニュアルには多くの例が挙げられていて分 かりやすいが、 PV-Wave の能力がすべてみわたせる大 規模な例がいくつかあればもっとよかっただろう。 このマニュアルの目次構成は、どうみても分かりづら い。 PV ~ Wave の言語の説明は 2 ~ 6 、 8 章にあり、 の言語によるプログラミングの説明は 7 、 9 、 13 、 15 、 16 、 18 章にある。また、画像表示と作図機能の情報は 10 、 11 、 14 章にあり、 PV-Wave のフォントの説明は 12 章にある。もっと論理的な構成にすれば、理解しやすく なっていたはすだ。 このマニュアルでもう 1 つ気になったのは、付録のユ UNIX MAGAZINE 1990.12 ーサー・ライプラリについての説明が簡単すぎることだ。 しかし、これはある程度の常識をもっていれは十分な情 報が得られるので、さほど気にかけることではない。 デモンストレーション・ガイドは、配布テープにある PV-Wave 用デモンストレーションの起動方法を説明 している。各デモンストレーションが PV ~ Wave のど の部分を使っているかの簡単な説明もあるが、デモ・プ ログラムを動かすだけでは初心者がシステムに馴染む手 助けにはならない。デモ・ファイルにある美しい絵は、 PV-Wave の優れた能力を表しているが、これはユーザ ーよりも PV ~ Wave の販売員に役立つものだ。デモ・プ ログラムはソフトウェアの機能を必要以上に利用してい るため、結果的に複雑になり、初心者の理解を妨 げているかもしれない。しかし、ある程度の経験があれば、 このプログラムからシステムの情報が得られるだろう。 画像処理マニュアルには、画像の処理と表示をおこな う手続きとアルゴリズムの概略が言己されている。簡略 化されているが、これは画像の処理 / 表示手続きがかなり 複雑で、入門マニュアルだけではカバーしきれないから である。それでも、このガイドは入門編としてはよい出 来栄えである。 PV-Wave の、、クイックリファレンス・ガイドはた いへん便利である。このガイドでは、見出しの下にすべ ての手続きと関数がまとめられているし、関数のリスト が異なる見出しの下に何回も繰り返し表示されている。 、、オンライン・ヘルプ〃の使い方は、ややわかりにく い。 PV-Wave のヘルプ・コマンドは、 PV-Wave の 環境に関するステータス情報を返すので、このコマンド 名は、、 help 〃ではなく、、 status" のほうがよい。 PV-Wave の各機能の使い方のオンライン情報は、響〃をタイプす ると呼び出せるようになっている。 PV-Wave のヘルプでは、ヘルフ艘能から抜け出さす に複数のコマンドを調べることができる。これは、ひど く時間がかかることを気にしなけれは便利な機能である。 PV ~ Wave の関数を引数なしで呼び出したときに表示 されるエラーメッセージ incorrect number of argu- ment ( 引数の数が正しくない ) 〃は、たしかに正しいかも しれないカ彳殳には立たない。このようなメッセージの代 わりに、その関数の使用法と引数を表示したほうがユー サーにはもっと役立つだろう。 37